Non-volatile memory devices are arranged in either a parallel interface arrangement or a serial interface arrangement. In past years, the parallel interface was more prevalent because of its fast, random access capability, making it ideal for direct code execution. In recent years, the serial interface has become more prevalent for storing personal preference and configuration data, offering a low pin count, low power consumption, and smaller packages. The parallel interface uses independent outputs and address pins with a rectangular array of memory devices. The serial interface typically uses a two wire configuration and sometimes a third wire for clock signals. Other wire arrangements can be found but a clock signal is always present.
An example of a parallel interface is shown in U.S. Pat. No. 4,451,903 entitled “Method for Encoding Product and Programming Information in Semiconductors,” assigned to the assignee of the present invention. FIG. 4 of the '903 patent shows how many parameters that characterize non-volatile memory devices may be specified for encoding in the memory. In this example, 15 different parameters, including device manufacturer are encoded.
The increasing popularity of the serial interface has led to the development of the Serial Peripheral Interface (SPI) protocol. The SPI standardizes the pins for serial interface devices and defines a group of such pins as an SPI bus.
Despite the growing number of serial interface memory manufacturers (each of whom has been assigned a manufacturer identification by JEDEC publication 106, which standardized manufacturer identification codes encoded on devices), there is no common electronic method for identifying these serial interface memories, or SPI devices, on an SPI bus once these devices are installed. This is problematic since different devices possess different characteristics, such as voltage range, erase times, etc. and may possess different architectures and command sets. If multiple, different SPI devices are installed on an SPI bus, it is necessary to identify these different devices in order for them to operate within the system.
While there are common methods for identifying parallel non-volatile memory devices, such as those contained in the Common Flash Memory Interface (CFI) specification which uses a single, common command to identify different suppliers' devices, these methods cannot be employed in serial devices because serial devices lack the address and data lines which allow the random access of information in parallel devices. (See “Common Flash Memory Interface (CFI) Specification,” Sharp AP-003-CFI-E.) In contrast to parallel devices which may have 16 or more address lines and between 8 and 32 data lines and, as noted above, access data randomly, serial devices have three lines and access information sequentially. Clearly, it would be desirable for there to be a method which not only identified any and all SPI devices installed on a system's SPI bus by the device's manufacturer and vendor-specific information, such as device density, device family, and device version, but also identified extended device information such as process technology, die revision, voltage levels, etc.